import {defineAsyncComponent,} from "vue"
import {createRouter, createWebHashHistory} from 'vue-router';
//Home:主页面  电力:power  照明:lighting  空调:airConditioner  系统设置:systemSetUp;
const _import = (path) => defineAsyncComponent(path)

/**
 * @description: 根据views文件夹下面所有的vue文件配置路由信息
 * @author: 王琛
 * @Date: 2022-11-22 16:43:06
 * @param {*}
 * @return {*}
 */
function generateRoute() {
    // 获取src下面的所有vue页面
    const _pageList = [
        {
            path:"/",
            redirect:"/views/home"
        }
    ];
    // 获取views下的所有页面
    const modules = import.meta.glob("../views/**/**.vue")
    // 遍历页面信息并创建路由配置
    for (let key in modules) {
        // 分割路由名称
        const modules_name_path_list = key.split("/");
        // 删除开头的..数据
        modules_name_path_list.shift();
        // 删除最后一项数据,应为.vue不能出现所以得单独处理
        const routerName_FullName = modules_name_path_list.pop();
        // 获取路由名称
        const modules_name = routerName_FullName.split(".")[0];
        // 路由路径和名称拼接
        const routerPathAndName = `${modules_name_path_list.join("/")}/${modules_name}`;
        // 开始拼接路由
        _pageList.push({
            path: `/${routerPathAndName}`,
            name: routerPathAndName,
            component: _import(modules[key]),
        })
    }
    return _pageList;
}

const Router = createRouter({
    history: createWebHashHistory(),
    routes: generateRoute()
})
Router.beforeEach((to, from, next) => {
    next();
})
export default Router